package com.dilean.api.model;

import java.util.Collection;

import java.util.Map;

public interface Person extends AbstractEntity {

    public Collection<Person> getFriends();
    

    public Collection<Person> getFriendRequests();

    public Collection<Conversation> getConversations();

    public void addToFriends(Person person);
    
    public void deliteFriend(Person person);

    public <T> T getAttributeValue(Integer attributeId, Class<T> t);

    public <T> AttributeValue<T> setParameter(Integer attrId, AttributeValue<?> attrValue);

    public <T> AttributeValue<T> setParameterForUpdate(Integer attrId, AttributeValue<?> attrValue);

    public Map<Attribute, AttributeValue<?>> getAttrsToUpdate();

    public void addConversation(Conversation conversation);

    public void setFriends(Collection<Person> friends);

    public void setFriendRequests(Collection<Person> requests);

//	public <T> Collection<AttributeValue<?>> getParameters(List<Integer> attrIds);
    public <T> Collection<AttributeValue<?>> getParameters();

    public void clearAttrsToUpdate();
    
    
}
